package cn.fuxue.hrms.common.entity;
import java.sql.Timestamp;
/**
 * @author 王文勇
 * @version 1.0
 * 审批实例实体类
 */
public class ApprovalInstance {
    // 审批实例的唯一标识 ID，主键
    private int id;
    // 审批流程模板 ID，外键，关联 approval_flow_template 表，指明该审批实例基于哪个模板创建
    private Integer flowTemplateId;
    // 业务键值，用于关联具体业务数据，具有业务唯一性
    private String businessKey;
    // 业务类型，说明该审批实例所属的业务范畴
    private String businessType;
    // 发起人 ID，记录发起该审批流程的用户 ID
    private Integer initiatorId;
    // 当前步骤，标识审批流程当前所处的步骤
    private Integer currentStep;
    // 最后修改该审批实例信息的用户 ID
    private Integer modifyId;
    // 创建该审批实例的用户 ID
    private Integer createId;
    // 是否删除，布尔值，标识该审批实例是否被逻辑删除
    private boolean isDeleted;
    // 创建时间，记录审批实例创建的日期和时间
    private Timestamp createTime;
    // 更新时间，记录审批实例最后一次被修改的日期和时间
    private Timestamp updateTime;

    // 无参构造函数
    public ApprovalInstance() {
    }

    // 全参构造函数
    public ApprovalInstance(int id, Integer flowTemplateId, String businessKey, String businessType,
                            Integer initiatorId, Integer currentStep, Integer modifyId,
                            Integer createId, boolean isDeleted, Timestamp createTime,
                            Timestamp updateTime) {
        this.id = id;
        this.flowTemplateId = flowTemplateId;
        this.businessKey = businessKey;
        this.businessType = businessType;
        this.initiatorId = initiatorId;
        this.currentStep = currentStep;
        this.modifyId = modifyId;
        this.createId = createId;
        this.isDeleted = isDeleted;
        this.createTime = createTime;
        this.updateTime = updateTime;
    }

    // Getter 和 Setter 方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Integer getFlowTemplateId() {
        return flowTemplateId;
    }

    public void setFlowTemplateId(Integer flowTemplateId) {
        this.flowTemplateId = flowTemplateId;
    }

    public String getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(String businessKey) {
        this.businessKey = businessKey;
    }

    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }

    public Integer getInitiatorId() {
        return initiatorId;
    }

    public void setInitiatorId(Integer initiatorId) {
        this.initiatorId = initiatorId;
    }

    public Integer getCurrentStep() {
        return currentStep;
    }

    public void setCurrentStep(Integer currentStep) {
        this.currentStep = currentStep;
    }

    public Integer getModifyId() {
        return modifyId;
    }

    public void setModifyId(Integer modifyId) {
        this.modifyId = modifyId;
    }

    public Integer getCreateId() {
        return createId;
    }

    public void setCreateId(Integer createId) {
        this.createId = createId;
    }

    public boolean isDeleted() {
        return isDeleted;
    }

    public void setDeleted(boolean deleted) {
        isDeleted = deleted;
    }

    public Timestamp getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Timestamp createTime) {
        this.createTime = createTime;
    }

    public Timestamp getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Timestamp updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "ApprovalInstance{" +
                "id=" + id +
                ", flowTemplateId=" + flowTemplateId +
                ", businessKey='" + businessKey + '\'' +
                ", businessType='" + businessType + '\'' +
                ", initiatorId=" + initiatorId +
                ", currentStep=" + currentStep +
                ", modifyId=" + modifyId +
                ", createId=" + createId +
                ", isDeleted=" + isDeleted +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}